Prototype Model
The prototype model requires that before carrying out the development of actual software, a working prototype of the system should be built. A prototype is a toy implementation of the system. A prototype usually turns out to be a very crude version of the actual system, possible exhibiting limited functional capabilities, low reliability, and inefficient performance as compared to actual software. In many instances, the client only has a general view of what is expected from the software product. In such a scenario where there is an absence of detailed information regarding the input to the system, the processing needs, and the output requirement, the prototyping model may be employed.
- Requirements Gathering − Identify and collect initial requirements for the software. Understand the client's needs and expectations for the system.
- Quick Design −Develop a quick and basic design based on the gathered requirements. This design serves as the foundation for the prototype.
- Build Prototype −Implement a preliminary version of the software based on the quick design. The prototype is a functional but incomplete version of the final system.
- User Evaluation − Present the prototype to users and stakeholders for evaluation. Gather feedback on the prototype's functionality, user interface, and other aspects.
- Refinement − Use the feedback obtained during the evaluation phase to refine and enhance the prototype. Make necessary adjustments to features, design, or functionality.
- Iterative Development −Repeat the process of building, evaluating, and refining the prototype in multiple iterations. Each iteration aims to improve the prototype based on user feedback.
- Reduce the risk of incorrect user requirement
- Good where requirement are changing/uncommitted
- Regular visible process aids management
- Support early product marketing
- Reduce Maintenance cost.
- Errors can be detected much earlier as the system is made side by side.
- An unstable/badly implemented prototype often becomes the final product.
- Difficult to know how long the project will last.
- Easy to fall back into the code and fix without proper requirement analysis, design, customer evaluation, and feedback.
- Prototyping tools are expensive.
- Special tools & techniques are required to build a prototype.
- It is a time-consuming process.